Model হলো CodeIgniter এর MVC আর্কিটেকচারের একটি অংশ, যা ডাটাবেসের সাথে যোগাযোগ করে এবং ডেটা ম্যানেজমেন্ট পরিচালনা করে। এটি ডাটাবেস রিকোয়েস্ট পরিচালনা, ডেটা ফিল্টারিং, এবং ডেটা রিটার্ন করার জন্য ব্যবহৃত হয়।
CodeIgniter এ Model তৈরি করতে, নিম্নলিখিত ধাপগুলো অনুসরণ করুন:
app/Models
ডিরেক্টরিতে যান।ProductModel.php
)।CodeIgniter\Model
ক্লাস থেকে এক্সটেন্ড করে একটি ক্লাস তৈরি করুন।<?php
namespace App\Models;
use CodeIgniter\Model;
class ProductModel extends Model
{
protected $table = 'products'; // টেবিলের নাম
protected $primaryKey = 'id'; // প্রাইমারি কী
protected $allowedFields = ['name', 'price', 'description']; // আপডেট করার অনুমতি প্রাপ্ত ফিল্ডগুলো
}
Model এর মাধ্যমে ডাটাবেসে কাজ করার আগে ডাটাবেস কনফিগার করতে হবে।
app/Config/Database.php
ফাইল খুলুন এবং ডাটাবেস তথ্য দিন:
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'your_database_name',
'DBDriver' => 'MySQLi',
];
অথবা .env
ফাইল ব্যবহার করুন:
database.default.hostname = localhost
database.default.database = your_database_name
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
Model ব্যবহার করতে কন্ট্রোলারে লোড করুন:
use App\Models\ProductModel;
$productModel = new ProductModel();
$products = $productModel->findAll();
$product = $productModel->find(1); // প্রাইমারি কী '1' এর ডেটা
$products = $productModel->where('price >', 100)->findAll();
Model এর insert
মেথড ব্যবহার করে ডেটা ইনসার্ট করুন:
$data = [
'name' => 'Laptop',
'price' => 50000,
'description' => 'High performance laptop',
];
$productModel->insert($data);
Model এর update
মেথড ব্যবহার করে ডেটা আপডেট করুন:
$data = [
'price' => 45000,
];
$productModel->update(1, $data); // ID 1 এর ডেটা আপডেট
Model এর delete
মেথড ব্যবহার করে ডেটা ডিলিট করুন:
$productModel->delete(1); // ID 1 এর ডেটা ডিলিট
যদি আপনি কাস্টম কুয়েরি চালাতে চান, Model এর query
মেথড ব্যবহার করতে পারেন:
$query = $productModel->query("SELECT * FROM products WHERE price > ?", [100]);
$results = $query->getResult();
<?php
namespace App\Controllers;
use App\Models\ProductModel;
class Product extends BaseController
{
public function index()
{
$productModel = new ProductModel();
$data['products'] = $productModel->findAll(); // সমস্ত প্রোডাক্ট ফেচ
return view('product_list', $data); // ভিউ লোড
}
public function add()
{
$productModel = new ProductModel();
$data = [
'name' => 'Mobile Phone',
'price' => 30000,
'description' => 'Smartphone with 4GB RAM',
];
$productModel->insert($data); // নতুন প্রোডাক্ট ইনসার্ট
return redirect()->to('/product');
}
}
মেথড | কাজ |
---|---|
findAll() | সমস্ত ডেটা রিটার্ন করে। |
find($id) | নির্দিষ্ট ID এর ডেটা রিটার্ন করে। |
insert($data) | নতুন ডেটা ইনসার্ট করে। |
update($id, $data) | নির্দিষ্ট ID এর ডেটা আপডেট করে। |
delete($id) | নির্দিষ্ট ID এর ডেটা ডিলিট করে। |
where($field, $value) | কন্ডিশন অনুযায়ী ডেটা ফিল্টার করে। |
Model ব্যবহার করে CodeIgniter এ ডাটাবেস Interaction সহজ, কার্যকর এবং দ্রুত। এটি ডেটা ম্যানেজমেন্টকে আরও সুসংগঠিত এবং পুনঃব্যবহারযোগ্য করে তোলে।